/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package asja.formulario;


import asja.dao.NotasDao;
import asja.excecoes.ValorInvalido;
import asja.excecoes.Vazio;
import asja.modelo.NotasModelo;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.event.MouseEvent;
import java.awt.event.MouseAdapter;
import java.io.IOException;
import java.sql.SQLException;
import java.util.Vector;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.*;
import javax.swing.JPopupMenu.Separator;


/**
 *
 * @author Filipe Piaui
 */
public class CadastroNotasFormulario extends JFrame {
    private JButton bt_ok, bt_limpar, bt_cancelar;
    private JLabel lbl_nome, lbl_nota1,lbl_nota2,lbl_nota3,lbl_nota4,lbl_nota5, lbl_falta, lbl_imagem;
    private JTextField jtf_nome,jtf_falta, jtf_nota1,jtf_nota2, jtf_nota3, jtf_nota4, jtf_nota5, jtf_frequencia;
    private JComboBox jCb_nota1,jCb_nota2, jCb_nota3,jCb_nota4,jCb_nota5,jCb_frequencia;
    private JMenuItem gravar, limpar, sair;
    private JMenu jMnu_Ficheiro,jMnu_Ajuda;
    private JMenuBar BarraMenu;
    private Separator separador1;
    
    
    Vector <Integer> vetor_nota1;
    Vector <Integer> vetor_nota2;
    Vector <Integer> vetor_nota3;
    Vector <Integer> vetor_nota4;
    Vector <Integer> vetor_nota5;
    Vector <Integer> vetor_frequencia;
    
    public CadastroNotasFormulario(){
        
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
        this.setTitle("Notas Cadastro");  
        this.setSize(500, 400); 
        this.setResizable(false); 
        this.setLocationRelativeTo(null);  
        
    }
    
    public void CriaJanela(){
        bt_ok = new JButton("Ok ");
        bt_cancelar = new JButton ("Cancelar");
        bt_limpar = new JButton ("Limpar");
        
        lbl_nome = new JLabel("Nome: ");
        lbl_nota1 = new JLabel("Nota1 ");
        lbl_nota2= new JLabel("Nota2");
        lbl_nota3 = new JLabel("Nota3 ");
        lbl_nota4 = new JLabel("Nota4 ");
        lbl_nota5 = new JLabel("Nota5 ");        
        lbl_falta = new JLabel("Frequencia ");
        jtf_nome = new JTextField("", 20);
        jtf_frequencia = new JTextField("", 4);
        jtf_nota1 = new JTextField("", 4);
        jtf_nota2 = new JTextField("", 4);
        jtf_nota3 = new JTextField("", 4);
        jtf_nota4 = new JTextField("", 4);
        jtf_nota5 = new JTextField("", 4);
        jCb_nota1= new JComboBox();
        jCb_nota2= new JComboBox();
        jCb_nota3= new JComboBox();
        jCb_nota4= new JComboBox();
        jCb_nota5= new JComboBox();
        lbl_imagem= new JLabel();
        vetor_nota1=new Vector<Integer>();
        vetor_nota2=new Vector<Integer>();
        vetor_nota3=new Vector<Integer>();
        vetor_nota4=new Vector<Integer>();
        vetor_nota5=new Vector<Integer>();
        vetor_frequencia=new Vector<Integer>();
        BarraMenu= new JMenuBar();        
        jMnu_Ficheiro = new JMenu("Ficheiro");
        jMnu_Ajuda = new JMenu("Ajuda"); 
        limpar= new JMenuItem("Limpar");
        gravar= new JMenuItem("Novo");
        sair= new JMenuItem("Sair");
        separador1 = new Separator();
        
        // Adicionando o itens  ao menu ficheiro
        jMnu_Ficheiro.add(gravar);
        jMnu_Ficheiro.add(limpar);
        jMnu_Ficheiro.add(separador1);
        jMnu_Ficheiro.add(sair);
        
        BarraMenu.add(jMnu_Ficheiro);        
        BarraMenu.add(jMnu_Ajuda);
        this.setJMenuBar(BarraMenu);
        
        //painel para os dados
       JPanel painel_dados = new JPanel();  
       painel_dados.setLayout(new GridBagLayout()); 
       
       painel_dados.add(lbl_nome, parametro(0,0,1,1));
       painel_dados.add(jtf_nome, parametro(0,1,11,1));
       
       painel_dados.add(lbl_nota1, parametro(1,0,1,1));
       painel_dados.add(jtf_nota1, parametro(1, 1, 1, 1));
       
       painel_dados.add(lbl_nota2, parametro(1,2,1,1));
       painel_dados.add(jtf_nota2, parametro(1, 3, 1, 1));
       
       painel_dados.add(lbl_nota3, parametro(1,4,1,1));
       painel_dados.add(jtf_nota3, parametro(1, 5, 1, 1));
       
       painel_dados.add(lbl_nota4, parametro(1,6,1,1));
       painel_dados.add(jtf_nota4, parametro(1, 7, 1, 1));
       
       painel_dados.add(lbl_nota5, parametro(1,8,1,1));
       painel_dados.add(jtf_nota5, parametro(1, 9, 1, 1));
       
       painel_dados.add(lbl_falta, parametro(1,10,1,1));
       painel_dados.add(jtf_frequencia, parametro(1, 11, 1, 1));     
       
       //painel para os comandos
       JPanel painel_comandos = new JPanel();         
       painel_comandos.setLayout(new FlowLayout()); 
       painel_comandos.add(bt_ok);
       painel_comandos.add(bt_limpar);
       painel_comandos.add(bt_cancelar);
       
       //Painel cabecalho
       JPanel painel_cabecalho = new JPanel();         
       painel_cabecalho.setLayout(new BorderLayout());            
       lbl_imagem.setIcon(new ImageIcon("imagens\\notas.jpg"));
       painel_cabecalho.add(lbl_imagem, BorderLayout.CENTER); 
        
       
        JPanel painel_geral = new JPanel();
        painel_geral.setLayout(new BorderLayout());
        painel_geral.add(painel_cabecalho,BorderLayout.NORTH);
        painel_geral.add(painel_dados,BorderLayout.CENTER);
        painel_geral.add(painel_comandos,BorderLayout.SOUTH);
        this.getContentPane().add(painel_geral);  
        
         bt_ok.addMouseListener(new MouseAdapter() {
        @Override
            public void mouseClicked(MouseEvent evt){ 
                try {
                    gravar_cadastro();
                } catch (IOException ex) {
                    JOptionPane.showMessageDialog(CadastroNotasFormulario.this, "Nome ou notas inválidos", "Cadastro de Notas", JOptionPane.WARNING_MESSAGE);
                }
             
            }});
         
          bt_cancelar.addMouseListener(new MouseAdapter() {
        @Override
            public void mouseClicked(MouseEvent evt){
                MenuPrincipalFormulario mnu_principal = new MenuPrincipalFormulario(); 
                mnu_principal.criajanela_menuprincipal();  
                mnu_principal.aparencia_MenuPrincipal();
                dispose();
                                 
            }});
        
        
         pack();        
        this.setVisible(true);
        this.setResizable(false);  
        
        
        
    }
    
    
    private GridBagConstraints parametro(int gridy, int gridx,int width, int height) {
        GridBagConstraints gb = new GridBagConstraints();
        gb.gridx = gridx;
        gb.gridy = gridy;
        gb.gridheight = height;
        gb.gridwidth = width;

        gb.weightx = 0;
        gb.weighty = 30;
        gb.fill = GridBagConstraints.HORIZONTAL;
       // gb.anchor = GridBagConstraints.WEST;
        
        gb.insets = new Insets(2, 2, 2, 2);

        return gb;
    }
     
    public void gravar_cadastro() throws IOException{   

  
         try {
             
            NotasModelo insere = new NotasModelo();
            
            insere.setNome(jtf_nome.getText()); 
            insere.setFrequencia(Float.parseFloat(jtf_frequencia.getText()));
            insere.setNota1(Float.parseFloat(jtf_nota1.getText().toString()));            
            insere.setNota2(Float.parseFloat(jtf_nota2.getText().toString()));
            insere.setNota3(Float.parseFloat(jtf_nota3.getText().toString()));
            insere.setNota4(Float.parseFloat(jtf_nota4.getText().toString()));
            insere.setNota5(Float.parseFloat(jtf_nota5.getText().toString()));
            
            
            
            if (jtf_nota1.getText().toString().equals(""))
                throw new IOException("nota com Valor inválido");
            
            if(Float.parseFloat(jtf_nota1.getText().toString())<0 || Float.parseFloat(jtf_nota1.getText().toString())>10 || jtf_nota1.getText().toString().equals(""))
               throw new IOException("nota com Valor inválido");
            
            if(Float.parseFloat(jtf_nota2.getText().toString())<0 || Float.parseFloat(jtf_nota2.getText().toString())>10 || jtf_nota2.getText().toString().equals(""))
               throw new IOException("nota com Valor inválido");
            
            if(Float.parseFloat(jtf_nota3.getText().toString())<0 || Float.parseFloat(jtf_nota3.getText().toString())>10 || jtf_nota3.getText().toString().equals(""))
               throw new IOException("nota com Valor inválido");
            
            if(Float.parseFloat(jtf_nota4.getText().toString())<0 || Float.parseFloat(jtf_nota4.getText().toString())>10 || jtf_nota4.getText().toString().equals(""))
               throw new IOException("nota com Valor inválido");
            
            if(Float.parseFloat(jtf_nota5.getText().toString())<0 || Float.parseFloat(jtf_nota5.getText().toString())>10 || jtf_nota5.getText().toString().equals(""))
               throw new IOException("nota com Valor inválido");
            
            if(jtf_nome.getText().toString().equals(""))
                throw new IOException("nome com Valor inválido");
            
      
             NotasDao contr = new NotasDao();
             System.out.println("depois do add "+insere.getNome()); 
             contr.adiciona(insere);
          } catch (SQLException ex) {
             System.out.println("Erro ao Cadastrar Nota!");
         }
    }
     
    
  
    /*
    
     public static void main(String[] args) {        
       
        CadastroNotasFormulario addNotas= new CadastroNotasFormulario();
        addNotas.CriaJanela();
        
     }*/
}